﻿using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using Timesheet.Domain;

namespace Timesheet.Service
{
    public interface IProjectService
    {
        IList<Project> GetProjects();

        bool CheckExist(Project entity);

        Project GetByID(Int64 id);      
        IList<Project> GetProjectsByStatusAndUserId(string role, long userID);
        IList<Project> GetProjects(long userID);
        IList<Project> GetRefProjects(long userID);
        IList<Project> GetActivedRefProjects(long userID);
        IList<Project> GetAllProjects(long userID);
        void Add(Project entity);
        void Update(Project entity);
        void SimpleUpdate(Project entity);
        void Delete(Project entity);
        T ToEntity<T>(OrderedDictionary value,string key,bool isUpdate) where T:class;
        bool checkOwnerProject(long userId, long projectId);                
       
        IList<object> GetReportData(long prjID);
        IList<object> GetReportData(long prjID, long tmshID);
    }
}
